fun main(){
var a = readln().toInt()
var b = readln().toInt()
var c = a.toDouble() / b.toDouble()
println(c)
}
不知道大家有沒有做出來呢~
在程式中,如果電腦只會照著我們的數學運算的話,那就太弱了,所以我們顯然要讓他可以幫我們判斷一些東西吧。
在這裡我們要學一個新的語法 —— if,他的寫法長這樣。
if(布林值){
要做的事
}
這個布林值在變數宣告有學過,總共有兩種值,true跟false,但具體我們要怎麼用呢,最常見的取得一個布林值的方法就是用我們的比較運算子啦。
符號 | 用法 | 功能 |
---|---|---|
== | a==b | 回傳a、b是否相等 |
!= | a!=b | 回傳a、b是否不相等 |
> | a>b | 回傳a是否大於b |
>= | a>=b | 回傳a是否大於等於b |
< | a<b | 回傳a是否小於b |
<= | a<=b | 回傳a是否小於等於b |
所以比如說我們要判斷一個數字是不是大於13,我們可以這樣寫。
var a:Int = 15
var check:Boolean = a>13
if(check){
println("Yes, $a is greater then 13")
}
或者更簡單點,我們可以直接塞這個運算進入if的掛號內,因為他回傳的正是布林值。
var a:Int = 15
if(a>13){
println("Yes, $a is greater then 13")
}
既然都有【如果】了,那【如果不然】應該要怎麼寫呢?
同樣用剛剛的範例來說,最簡單的方法。
var a:Int = 15
if(a>13){
println("Yes, $a is greater then 13")
}
if(a<=13){
println("No, $a is not greater then 13")
}
我們可以透過邏輯來找出完全相反的狀況來if,不過其實kotlin有提供更便捷的語法給我們。
var a:Int = 15
if(a>13){
println("Yes, $a is greater then 13")
}
else{
println("No, $a is not greater then 13")
}
但是這裡要注意喔,這個else跟if是伴生,你一定需要有if才能用,所以如果今天只需要else的部分,你還是只能用if那塊直接空著,或是邏輯來反寫你的if。
如果你今天有很多個條件想判斷,你可以用else if。
比如範例我想要判斷a跟13的大小關係,我可以這樣寫。
var a = 13
if(a==13){
println("equal!")
}
else if(a<13){
println("low!")
}
else{
println("high!")
}
而且其實中間要有多少個else if都沒有關係,最後面也不一定需要else,但if一定要存在。
而且一定要注意的是,他的判斷順序是由上而下的,只要上面的對了,下面的就算也對他也不會執行裡面的東西喔。
喔對了,還有一種特殊的寫法叫做巢狀,那就是妳是可以在你的if裡面再寫一個if的喔。
比如說這樣
if(a>13){
if(a>20){
}
else{
}
}
像這裡就是需要注意的小地方,裡面那個else是屬於裡面的if的,不是外面的if的喔。
所以為了避免搞混,我們通常裡面一層會使用tab(鍵盤上Q左邊那個鍵),他會幫我們按四個空格,就可以很好的別人哪段程式碼在哪一層了,各位如果注意過的話,我所有程式碼都是有好好縮排的喔。
說個小故事,其實大括號有兩種寫法,兩種寫法在Kotlin都可以。
if(){
}
跟
if()
{
}
下面那個俗稱下放,雖然兩個寫法都可以,但我超討厭下放的啦。
大家應該已經知道了if是怎麼使用,這裡在介紹幾個對布林值使用的運算子,可以幫助你用的更順。
符號 | 用法 | 功能 |
---|---|---|
&& | a&&b | a、b皆為true才回傳true,其他回傳false |
|| | a||b | a、b至少一個為true才回傳true,其他回傳false。如果找不到的話,這個是enter上面的鍵喔。 |
! | !a | 目前唯一一個一元運算子,他能回傳a的反值,如果原本是true就回傳false,如果原本是false就回傳true |
比如我今天除了想知道一個人有沒有成年,如果成年我還想知道他是不是偶數歲,我可以這樣寫。
var age = 20
if(age>=18 && age%2==0){
println("Yes!")
}
櫛風老師在家教時對學生考了一次試,想要知道學生的等第,請你幫幫他完成這個程式吧。
一個100以內的正整數或0,代表學生的成績。
請輸出學生的等第,對照表如下
成績 | 等第 |
---|---|
90~100 | A |
60~89 | B |
40~59 | C |
0~ 39 | D |